Ruby Tips
配列
sort_by複数条件でソートする
code:ruby
sorted_array = array.sort_by do |val1,val2|
end
val1→val2でソートされる
キャッシュ
インスタンス変数のキャッシュ
code:ruby
class Example
def hoge_with_defined
return @hoge if defined?(@hoge)
@hoge = some_expensive_operation
end
def hoge_with_or_equals
@hoge ||= some_expensive_operation
end
def some_expensive_operation
# 何か時間がかかる処理
end
end
return @hoge if defined?(@hoge):
@hoge が nil または false でも、それが初期値であると判断し、その値をそのまま返す
@hoge ||= ...
@hoge が false または nil で初期化されている場合、毎回右側の式が評価される
hiroki.iconfalse / nilをも有効な値であると判断するかどうかで実装を使い分ける
数値
code:ruby
irb(main):001:0> nil.to_i
=> 0
irb(main):002:0> 0.0.to_i
=> 0
irb(main):003:0> "a".to_i
=> 0
irb(main):006:0> Integer(nil, exception: false)
=> nil
irb(main):007:0> Integer(0.0, exception: false)
=> 0
irb(main):008:0> Integer("a", exception: false)
=> nil
メタ
#method
メソッドのメタ情報を取得して定義位置、定義されているクラスを取得
.ancestors
クラスの継承リスト
.const_source_location
定数の定義位置